<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="Content-Language" content="zh-CN"><title>hwdb
  中文手册 [金步国]</title><style>
@font-face { font-family: "JinBuGuoWebMono"; src: url("http://www.jinbuguo.com/d/mono.ttf") format("truetype"); }
* { font-family: "JinBuGuoWebMono", "Ubuntu Mono", "Consolas", "Menlo", monospace; }
body { margin:10px; }
h1 { text-align:center; background:#ddd; }
h2#auth_name { text-align:center; margin: 10px 5%; }

    a.headerlink {
      color: #c60f0f;
      font-size: 0.8em;
      padding: 0 4px 0 4px;
      text-decoration: none;
      visibility: hidden;
    }

    a.headerlink:hover {
      background-color: #c60f0f;
      color: white;
    }

    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
      visibility: visible;
    }
</style><script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><h1>hwdb 中文手册</h1><h2 id="auth_name">译者：<strong><a href="../index.html">金步国</a></strong></h2><hr><h3>版权声明</h3><p>本文译者是一位开源理念的坚定支持者，所以本文虽然不是软件，但是遵照开源的精神发布。</p><ul><li>无担保：本文译者不保证译文内容准确无误，亦不承担任何由于使用此文档所导致的损失。</li><li>自由使用：任何人都可以自由的<u>阅读/链接/打印</u>此文档，无需任何附加条件。</li><li>名誉权：任何人都可以自由的<u>转载/引用/再创作</u>此文档，但必须保留译者署名并注明出处。</li></ul><h3>其他作品</h3><p>本文译者十分愿意与他人分享劳动成果，如果你对我的其他翻译作品或者技术文章有兴趣，可以在如下位置查看现有的作品集：</p><ul><li><a href="../index.html">金步国作品集</a> [ <a href="../index.html">http://www.jinbuguo.com/</a> ]</li></ul><h3>联系方式</h3><p>由于译者水平有限，因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好)，请来信指出，任何提高译文质量的建议我都将虚心接纳。</p><ul><li>Email(QQ)：70171448在QQ邮箱</li></ul><hr><a href="systemd.index.html">手册索引</a> ·
  <a href="systemd.directives.html">指令索引</a><span style="float:right">systemd-241</span><hr><div class="refentry"><a name="hwdb"></a><div class="titlepage"></div><div class="refnamediv"><h2>名称</h2><p>hwdb — 硬件数据库</p></div><div class="refsect1"><a name="id-1.4"></a><h2 id="描述">描述<a class="headerlink" title="Permalink to this headline" href="hwdb.html#%E6%8F%8F%E8%BF%B0">¶</a></h2><p>硬件数据库是一个由"modalias"风格的键(key)与"udev属性"风格的值(value)组成的 key-value 文本数据库。
    主要用于 udev 为匹配到的硬件设备添加关联属性，
    但也可以用于直接查询。</p></div><div class="refsect1"><a name="id-1.5"></a><h2 id="硬件数据库文件">硬件数据库文件<a class="headerlink" title="Permalink to this headline" href="hwdb.html#%E7%A1%AC%E4%BB%B6%E6%95%B0%E6%8D%AE%E5%BA%93%E6%96%87%E4%BB%B6">¶</a></h2><p>硬件数据库文件(hwdb)位于
      操作系统发行商维护的 <code class="filename">/usr/lib/udev/hwdb.d</code> 目录中，
      以及系统管理员维护的 <code class="filename">/etc/udev/hwdb.d</code> 目录中。
      所有的 hwdb 文件(无论位于哪个目录中)，统一按照文件名的字典顺序处理。
      对于不同目录下的同名 hwdb 文件，仅以 <code class="filename">/etc/udev/hwdb.d</code> 目录中的那一个为准。
      依据这个特性，系统管理员可以使用 <code class="filename">/etc/udev/hwdb.d</code> 目录中的自定义文件
      替代 <code class="filename">/usr/lib/udev/hwdb.d</code> 目录中的同名文件。
      如果系统管理员想要屏蔽 <code class="filename">/usr/lib/udev/hwdb.d</code> 目录中的某个 hwdb 文件，
      那么最佳做法是在 <code class="filename">/etc/udev/hwdb.d</code>
      目录中创建一个指向 <code class="filename">/dev/null</code> 的同名符号链接，
      即可彻底屏蔽 <code class="filename">/usr/lib/udev/hwdb.d</code> 目录中的同名文件。
      注意，硬件数据库文件必须以 
      <code class="filename">.hwdb</code> 作为后缀名，否则将被忽略。</p><p>每个硬件数据库文件(hwdb)都包含一系列由"matche"与关联的"key-value"组成的记录。
      每条记录由一个或多个用于匹配的"matche"字符串(可包含shell风格的通配符)开头，
      多个"matche"字符串之间使用换行符分隔，但必须是依次紧紧相连的行(也就是中间不能出现空行)，
      每一行都必须是一个完整的"matche"字符串(也就是不能将一个"matche"字符串分为两行)，
      多行之间是逻辑或(OR)的关系。
      每一个"matche"字符串都必须顶行书写(也就是行首不能是空白字符)。</p><p>"matche"行之后是一个或多个以空格开头的"key-value"行(必须以空格开头作为区分)，
       "key-value"行必须符合 "<code class="literal">key=value</code>" 格式。
      一个空白行表示一条记录结束。
      以 "<code class="literal">#</code>" 开头的行将被视为注释而被忽略。</p><p>如果有多条记录的"matche"串都匹配同一个给定的查找字符串，
      那么所有匹配记录中的"key-value"都将被融合在一起。如果某个"key"出现了多次，
      那么仅以最高优先级记录中的"value"为准(每个"key"仅允许拥有一个单独的"value")。
      对于不同硬件数据库文件(hwdb)中的记录来说，文件名的字典顺序越靠后，优先级越高；
      对于同一个硬件数据库文件(hwdb)中的记录来说，
      记录自身的位置越靠后，优先级越高。</p><p>所有 hwdb 文件都将被
      <a href="systemd-hwdb.html#"><span class="citerefentry"><span class="refentrytitle">systemd-hwdb</span>(8)</span></a>
      编译为二进制格式的数据库，并存放在 <code class="filename">/etc/udev/hwdb.bin</code> 文件中。
      注意，操作系统发行商应该将预装的二进制格式的数据库存放在
       <code class="filename">/usr/lib/udev/hwdb.bin</code> 文件中。
      系统在运行时，仅会读取二进制格式的硬件数据库。</p></div><div class="refsect1"><a name="id-1.6"></a><h2 id="例子">例子<a class="headerlink" title="Permalink to this headline" href="hwdb.html#%E4%BE%8B%E5%AD%90">¶</a></h2><div class="example"><a name="id-1.6.2"></a><p class="title"><b>例 1.  hwdb 文件的一般语法</b></p><div class="example-contents"><pre class="programlisting"># /usr/lib/udev/hwdb.d/example.hwdb
# 注释一般放在记录之前。
# 用于描述该文件的用途、定义了哪些属性、
# 以及排序规则。

# 下面这条记录有三个 match 以及一个属性
mouse:*:name:*Trackball*:
mouse:*:name:*trackball*:
mouse:*:name:*TrackBall*:
 ID_INPUT_TRACKBALL=1

# 下面这条记录有一个 match 以及五个属性
mouse:usb:v046dp4041:name:Logitech MX Master:
 MOUSE_DPI=1000@166
 MOUSE_WHEEL_CLICK_ANGLE=15
 MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL=26
 MOUSE_WHEEL_CLICK_COUNT=24
 MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL=14
</pre></div></div><br class="example-break"><div class="example"><a name="id-1.6.3"></a><p class="title"><b>例 2. 属性值的覆盖</b></p><div class="example-contents"><pre class="programlisting"># /usr/lib/udev/hwdb.d/60-keyboard.hwdb
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*
 KEYBOARD_KEY_a1=help
 KEYBOARD_KEY_a2=setup
 KEYBOARD_KEY_a3=battery

evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn123*
 KEYBOARD_KEY_a2=wlan

# /etc/udev/hwdb.d/70-keyboard.hwdb
# 禁用所有AT键盘上的 wlan 按钮
evdev:atkbd:*
 KEYBOARD_KEY_a2=reserved</pre><p>如果硬件数据库仅由上述两个文件组成，那么查找字符串为
      "<code class="literal">evdev:atkbd:dmi:bvnAcer:bdXXXXX:bd08/05/2010:svnAcer:pn123</code>"
      的键盘将会匹配上述全部三条记录，并且最终获得如下"属性=值"：</p><pre class="programlisting">KEYBOARD_KEY_a1=help
KEYBOARD_KEY_a2=reserved
KEYBOARD_KEY_a3=battery</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="id-1.7"></a><h2 id="参见">参见<a class="headerlink" title="Permalink to this headline" href="hwdb.html#%E5%8F%82%E8%A7%81">¶</a></h2><p>
      <a href="systemd-hwdb.html#"><span class="citerefentry"><span class="refentrytitle">systemd-hwdb</span>(8)</span></a>
    </p></div></div></body></html>
